package com.hspedu.generic.improve;

import java.util.ArrayList;

/**
 * @author DL5O
 * @version 1.0
 */
@SuppressWarnings("all")
public class Generic02 {
    public static void main(String[] args) {
        //引入泛型
        //传统方法解决 ===> 使用泛型
        //1.当我们 ArrayList<Dog> 表示存放到ArrayList 集合中的元素是Dog类型
        //2.如果编译器发现添加的类型，不满足要求，就会报错
        //3.在遍历的时候，可以直接取出 Dog 类型，而不是Object类型

        ArrayList<Dog> list = new ArrayList<Dog>();
        list.add(new Dog("旺财",5));
        list.add(new Dog("发财",1));
        list.add(new Dog("小黄",6));
//        list.add(new Cat("招财猫",8));//加入一只猫,使用泛型后，就加入不了了

        System.out.println("===使用泛型===");
        for (Dog dog :list) {
            System.out.println("name=" + dog.getName() + ",age=" + dog.getAge());
        }
    }
}

class Dog{
    private String name;
    private int age;

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

class Cat{
    private String name;
    private int age;

    public Cat(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}